
#include "main.h"


//=========================================================
//=========================================================
#define DIG_LEN		sizeof(DIG_TAB)/2

//=========================================================
//=========================================================
const volatile u8 DIG_TAB[] = { 
' ',  0x00,
'-',  0x40,

'0',  0x3F,
'1',  0x06,
'2',  0x5B,
'3',  0x4F,
'4',  0x66,
'5',  0x6D,
'6',  0x7D,
'7',  0x07,
'8',  0x7F,
'9',  0x6F,

'A',  0x77,
'B',  0x7C,
'C',  0x39,
'D',  0x5E,
'E',  0x79,
'F',  0x71,
'G',  0x3D,
'H',  0x76,
'I',  0x30,
'J',  0x0E,
'K',  0x70,
'L',  0x38,
'M',  0x6B,
'N',  0x37,
'O',  0x3F,
'P',  0x73,
'Q',  0x67,
'R',  0x31,
'S',  0x6D,
'T',  0x07,
'U',  0x3E,
'V',  0x1C,
'W',  0x36,
'X',  0x2D,
'Y',  0x6E,
'Z',  0x49,

'a',  0x5F,
'b',  0x7C,
'c',  0x58,
'd',  0x5E,
'e',  0x7B,
'f',  0x71,
'g',  0x6F,
'h',  0x74,
'i',  0x04,
'j',  0x0C,
'k',  0x70,
'l',  0x18,
'm',  0x5D,
'n',  0x54,
'o',  0x5C,
'p',  0x73,
'q',  0x67,
'r',  0x50,
's',  0x6D,
't',  0x78,
'u',  0x1C,
'v',  0x1C,
'w',  0x14,
'x',  0x1B,
'y',  0x6E,
'z',  0x46,
};

//=========================================================
//=========================================================
unsigned char char_to_dig(unsigned char a,unsigned char dot)
{
	unsigned char i;
	
	for(i=0;i<DIG_LEN;i++)
	{
	  if(a==DIG_TAB[i*2])
			break;
	}
	
	if(i>=DIG_LEN)
		i = 0;
	
	if(dot)
		return DIG_TAB[i*2+1] | 0x80;
	else
		return DIG_TAB[i*2+1];
}

//=========================================================
//=========================================================
void refresh_lcd(void)
{
  static unsigned char dat1,dat2,dat3,dat4;
	
	if( (dat1==Dig_Data[0])&&(dat2==Dig_Data[1])&&(dat2==Dig_Data[2])&&(dat4==Dig_Data[3]) )
		return;
	
	dat1 = Dig_Data[0];
	dat2 = Dig_Data[1];
	dat3 = Dig_Data[2];
	dat4 = Dig_Data[3];
	
	Aip650_SendDigData(DIG0,dat1);
	Aip650_SendDigData(DIG1,dat2);
	Aip650_SendDigData(DIG2,dat3);
	Aip650_SendDigData(DIG3,dat4);	
}

